var Attendance = function () {

    return {
        init: function () {
       
            $modal = $('#responsive');
            $.fn.modalmanager.defaults.resize = true;
            $.fn.modalmanager.defaults.spinner = '<div class="loading-spinner fade" style="width: 200px; margin-left: -100px;"><img src="assets/img/ajax-modal-loading.gif" align="middle">&nbsp;<span style="font-weight:300; color: #eee; font-size: 18px; font-family:Open Sans;">&nbsp;Đang tải...</span></div>';
            
            $.datepicker.regional['vn'] = {
                monthNamesShort: ['Tháng 1','Tháng 2','Tháng 3','Tháng 4','Tháng 5','Tháng 6','Tháng 7','Tháng 8','Tháng 9','Tháng 10','Tháng 11','Tháng 12'],
                dayNamesMin: ['Hai','Ba','Tư','Năm','Sáu','Bảy','CN'],
                dateFormat : 'dd-mm-yy',
                changeMonth: true,
                changeYear: true
            };
        
            $.datepicker.setDefaults($.datepicker.regional['vn']);
            $(".datepicker").datepicker();
            
            $('input.monthpicker').datepicker({
                yearRange       : '-1:+0',
                changeMonth     : true,
                changeYear      : true,
                dateFormat      : 'yy-mm',
                onClose: function(dateText, inst) {

                    var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                    var year  = $("#ui-datepicker-div .ui-datepicker-year  :selected").val();

                    $(this).datepicker('setDate', new Date(year, month, 1));

                    $('.ui-datepicker-calendar').hide();
                },
                beforeShow : function(input, inst) {

                    $('.ui-datepicker-calendar').hide();

                    if ((datestr = $(this).val()).length > 0) {

                        year  = datestr.substring(0, 4);
                        month = datestr.substring(datestr.length-2, datestr.length) - 1;

                        $(this).datepicker('option', 'defaultDate', new Date(year, month, 1));
                        $(this).datepicker('setDate', new Date(year, month, 1));
                    }

                    $('#ui-datepicker-div').css('height', '33');
                }
            })
            .focus(function () {
                $('.ui-datepicker-calendar').hide();
            });

            $('td.dile, td.dihoc').click(function () {
                
                $('body').modalmanager('loading');

                var obj = {};
                obj['userid'] = $(this).attr('userid');
                obj['username'] = $(this).attr('username');
                obj['score'] = $(this).attr('score');
                obj['date'] = $(this).attr('date');
                
                if ($(this).hasClass('dile')) {
                    obj['scoretype'] = 'LE';
                } else {
                    obj['scoretype'] = 'HOC';
                }
                
                $modal.load('attendance_modal.php', obj, function(){
                    $modal.modal().on("hidden", function() {
                        $modal.empty();
                    });
                },'json');
            });

            $modal.on('click', '.btn-save', function () {
                    
                var tmp_inputs = $("input, select, textarea", $modal);
                var obj = {};
                    
                $.map(tmp_inputs, function(n, i) {
                    obj[$(n).attr('name')] = $(n).val();
                });
                
                if (obj.scoretype == 'LE') {
                    _tmp_classs = 'dile';
                }
                else {
                    _tmp_classs = 'dihoc';
                }

                $('[userid="'+obj.userid+'"][date="'+obj.date+'"][class*="'+_tmp_classs+'"]')
                .html('<img src="assets/img/loading.gif"/>')
                    
                $.ajax({
                    url: 'attendance_execute.php?action=update-attendance',
                    type: 'post',
                    dataType: 'json',
                    data: $.param(obj),
                    success:function(response){
                        if (response.code = 200) {
                            if (response.data.scoretype == 'LE') {
                                _tmp_classs = 'dile';
                            }
                            else {
                                _tmp_classs = 'dihoc';
                            }
                                
                            $('td[userid="'+response.data.userid+'"][date="'+response.data.date+'"][class*="'+_tmp_classs+'"]')
                            .html(response.data.scorename)
                            .attr('score', response.data.scorevalue);
                        }
                    }
                });
                    
                $('.close',$modal).click();
            });
        }
    };
}();